char *reverse(char *str)
{
  if(str == NULL)
    return NULL;

	int i = 0;
  int j = strlen(str) - 1;

	while (i < j)
	{
		// 不断的交换 arr[i] 和 arr[j]
		str[i] = str[j] ^ str[i];
		str[j] = str[j] ^ str[i]; // str[j] ^ str[j] ^ str[i] = 0 ^ str[i] = str[i]
		str[i] = str[j] ^ str[i]; // str[i] ^ str[j] ^ str[i] = str[i] ^ str[i] ^ str[j] = 0 ^ str[j] = str[j]

		// i后移，j前移
    i++;
		j--;
	}

  return str;
}